Motors amb control tot / res
Arduino UNO no té prou intensitat a les eixides digitals per controlar cap motor de corrent continu. Per això cal utilitzar l'escut A_UNO que té un integrat L293 per augmentar la intensitat a l'eixida on estan connectats els motors. Fes el muntatge següent amb dos motors.
Ara escriu el següent programa amb Blockly@rduino:
Fixa't que em definit funcions per cada motor per engegar, aturar cada motor avant (Horari) i enrere (antiHorari). Després al bloc principal del programa void_loop cridem aquest funcions per fer anar el motor i aturem el programa el segons que volem mantindre aquesta funció en marxa. Mira el programa equivalent per a l'Arduino IDE.
// Motor esquerre horari
void Motor_Esquerre_Horari() {
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
}
// Motor esquerre antiHorari
void Motor_Esquerre_antiHorari() {
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
}
// Motor esquerre aturat
void Motor_Esquerre_aturat() {
digitalWrite(13, LOW);
digitalWrite(12, LOW);
}
// Motor dret horari
void Motor_Dret_Horari() {
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
}
// Motor dret antihorari
void Motor_Dret_antiHorari() {
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
}
// Motor dret aturat
void Motor_Dret_aturat() {
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
Serial.begin(9600);
Serial.println("Anem a provar l\'escut A_UNO_L293");
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
Motor_Esquerre_Horari();
delay(5000);
Motor_Esquerre_antiHorari();
delay(5000);
Motor_Esquerre_aturat();
delay(5000);
Motor_Dret_Horari();
delay(5000);
Motor_Dret_antiHorari();
delay(5000);
Motor_Dret_aturat();
delay(5000);
}
Fes la pràctica de motors 1.